package com.jieli.bt.att.demo

import android.bluetooth.BluetoothDevice
import com.jieli.bt.att.tool.ble.BleManager
import com.jieli.bt.att.tool.ble.interfaces.BleEventCallback

/**
 * connectDemo
 * @author zqjasonZhong
 * @since 2025/3/31
 * @email zhongzhuocheng@zh-jieli.com
 * @desc 连接设备示例
 */
class ConnectDemo {

    fun connectAtt(device: BluetoothDevice) {
        //初始化BleManager对象
        val bleManager = BleManager.getInstance()
        //注册连接状态回调
        val callback = object : BleEventCallback(){
            override fun onBleConnection(device: BluetoothDevice?, status: Int) {
                //回调BLE设备连接状态
                //status --- 连接状态， 复用 BluetoothProfile#STATE_xxx 状态
                //BluetoothProfile.STATE_CONNECTED --- 已连接
                //BluetoothProfile.STATE_CONNECTING --- 连接中
                //BluetoothProfile.STATE_DISCONNECTED --- 已断开
            }
        }
        bleManager.registerBleEventCallback(callback)
        //连接ATT设备
        //必须指明是连接ATT方式，否则按照BLE设备连接
        val ret = bleManager.connectBleDevice(device, BleManager.TRANSPORT_BREDR)
        //ret 为操作结果
        if(!ret){
            //连接失败， 一般为设备正在连接中。
        }
        //不需要监听连接状态时，记得移除监听器
        //bleManager.unregisterBleEventCallback(callback)
    }

    fun disconnectAtt(device: BluetoothDevice){
        //初始化BleManager对象
        val bleManager = BleManager.getInstance()
        //注册连接状态回调
        val callback = object : BleEventCallback(){
            override fun onBleConnection(device: BluetoothDevice?, status: Int) {
                //回调BLE设备连接状态
                //status --- 连接状态， 复用 BluetoothProfile#STATE_xxx 状态
                //BluetoothProfile.STATE_CONNECTED --- 已连接
                //BluetoothProfile.STATE_CONNECTING --- 连接中
                //BluetoothProfile.STATE_DISCONNECTED --- 已断开
            }
        }
        bleManager.registerBleEventCallback(callback)
        //断开设备连接
        bleManager.disconnectBleDevice(device)
        //不需要监听连接状态时，记得移除监听器
        //bleManager.unregisterBleEventCallback(callback)
    }

}